今天我們要來介紹很基本的基本授權觀念,一開始我以為它就是standard username and password authentication,其實是不對的。
我們可以在RFC7617找到它,它用於在HTTP請求中傳送userId和密碼來認證,它會將userId以及密碼做Base64編碼後,附加在Authorization
header來發送。
Authorization
header,認證成功後,server才會做事情。因為它是不加密的傳遞,它只是用Base64做編碼,並沒有用任何加密的方法來保護帳密的安全,如果使用HTTP而不是HTTPS的話,被惡意攻擊截走我們的帳密後,就可以將帳密公諸於世啦,可怕~ 如果我們又有一個壞習慣,將所有網站的帳密都用同一組,應該不少人是這樣做的,因為記得帳密很麻煩XD,被偷走帳密等於你的所有網站幾乎都有被盜的風險,這是蠻嚴重的事情,因此現在才有越來越多的網站採取2fa認證。
建議要跟HTTPS一起使用,並且需要高安全性的應用場景也不應該使用這種機制,可以使用類似OAuth的機制來處理。
它除了帳密以外,還可以使用多因素身份驗證(MFA),例如指紋辨識等,來提高更強的安全性,所以它跟Basic Authentication其實不是同一種東西,但他也包含了一般帳密的認證方式。
今天我們了解Basic Authentication是甚麼東西,並且知道了它的應用場景。
https://roadmap.sh/guides/http-basic-authentication